package com.yonyou.pmclouds.processinspect.rmiitf;

import com.yonyou.pmclouds.basecom.entity.PageObject;
import com.yonyou.pmclouds.basecom.entity.SuperVO;
import com.yonyou.pmclouds.basecom.exception.BusinessException;
import com.yonyou.pmclouds.constructionlog.entity.ConstructionLogRefVO;
import com.yonyou.pmclouds.processinspect.entity.ProcedureInspectVO;

import java.util.List;
import java.util.Map;

public interface ProcedureInspectRemoteService {

    /**
     * 方法功能描述：工序报验保存接口。
     * <p>
     * <b>参数说明</b>
     *
     * @param procedureInspectVO
     * @return
     * @author zhangwce
     * @time 2017年11月12日 上午11:32:01
     */
    ProcedureInspectVO insertProcedureInspect(ProcedureInspectVO procedureInspectVO) throws BusinessException;

    /**
     * 方法功能描述：查询项目下的所有工序报验。
     * <p>
     * <b>参数说明</b>
     *
     * @param pk_project
     * @return
     * @author zhangwce
     * @time 2017年11月15日 上午10:09:07
     */
    List<ProcedureInspectVO> queryPrcInspectByPrj(String pk_project) throws BusinessException;

    /**
     * 方法功能描述：查询工序报验详情。
     * <p>
     * <b>参数说明</b>
     *
     * @param pk_process_inspect
     * @return
     * @author zhangwce
     * @time 2017年11月15日 上午10:14:10
     */
    ProcedureInspectVO queryPrcInspectDetail(String pk_process_inspect) throws BusinessException;

    /**
     * 方法功能描述：查询可以报验的施工记录。
     * <p>
     * <b>参数说明</b>
     *
     * @param pk_project
     * @return
     * @author zhangwce
     * @time 2017年11月28日 下午5:19:39
     */
    List<ConstructionLogRefVO> queryRecordForPrcInspect(String pk_project) throws BusinessException;

    /**
     * 引用校验
     *
     * @param code
     * @param ids
     * @return
     * @throws BusinessException
     */
    boolean queryRefByIds(String code, String[] ids) throws BusinessException;

    /**
     * 通过参数查询符合的数据
     *
     * @param params
     * @return java.util.List<com.yonyou.pmclouds.processinspect.entity.ProcedureInspectVO>
     * @author yzx
     * @date 2018/5/28 15:44
     */
    List<ProcedureInspectVO> queryVosByParams(Map<String, Object> params) throws BusinessException;

    /**
     * 通过pk获取工序报验数据
     *
     * @param procedureinspectpks
     * @return java.util.List<com.yonyou.pmclouds.processinspect.entity.ProcedureInspectVO>
     * @author yzx
     * @date 2018/6/1 19:33
     */
    List<ProcedureInspectVO> queryByProcedureInspectPks(String[] procedureinspectpks) throws BusinessException;

    PageObject<Object> queryByCondition(String[] pkProjects,
                                         String[] creators,
                                         String startDate,
                                         String endDate,
                                         int[] billStatus,
                                         int pageStart,
                                         int pageSize) throws BusinessException;


}
